package com.info.zhiduoduo.repository.dto.project;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.info.zhiduoduo.common.excelconverter.*;
import com.info.zhiduoduo.common.utils.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)  //setter return this;
@ToString
public class ProjectBriefsDto {

	@ExcelProperty("创建时间")
	private Date createtime;

	@ExcelProperty("项目ID")
	private int projectid;

	@ExcelProperty("项目名")
	private String projectname;

	@ApiModelProperty("项目类型 1: 项目 4:长期项目子项目")
	private int type;

	@ExcelIgnore
	private int compid;

	@ExcelProperty("企业")
	private String compname;

	@ExcelIgnore
	private int userid;

	@ExcelProperty("创客工作室")
	private String username;

	@ExcelProperty("创客名")
	private String realname;

	@ExcelIgnore
	@ApiModelProperty("招标类型 1：邀约 2：公开")
	private int bidType;

	@ExcelIgnore
	@JsonFormat(pattern = DateUtil.FORMAT_STYLE_2, timezone = DateUtil.TIME_ZONE_CHINA)
	@ApiModelProperty("公开招标结束日期，字符串yyyy-MM-dd")
	private Date bidEnd;

	@ExcelIgnore
	@JsonFormat(pattern = DateUtil.FORMAT_STYLE_2, timezone = DateUtil.TIME_ZONE_CHINA)
	@ApiModelProperty("公开招标项目完成截止日期，字符串yyyy-MM-dd")
	private Date bidProjectFinish;

	@ExcelIgnore
	@ApiModelProperty("公开招标审核结果备注")
	private String bidVerifyRemark;

	@ExcelIgnore
	@ApiModelProperty("是否通知乙方上传交付物 0：否 1：是")
	private int notifyUploadDelivery;

	@ExcelIgnore
	private Integer categoryid;

	@ExcelIgnore
	private String categoryname;

	@ExcelProperty("项目发布金额")
	private BigDecimal projectamount;

	@ExcelProperty("项目成交金额")
	private BigDecimal projectdealamount;

	@ExcelIgnore
	private BigDecimal projectservicecharge;

	@ExcelIgnore
	private double projectBaseServiceRate;

	@ExcelIgnore
	private double projectPartnerServiceRate;

	@ExcelIgnore
	private BigDecimal projecttaxfee;

	@ExcelIgnore
	private double projectTaxRate;

	@ExcelIgnore
	private int projectcycle;

	@ExcelProperty("项目提交时间")
	@ApiModelProperty("项目提交时间")
	private Date projectsubmit;

	@ExcelProperty("项目开始时间")
	private Date projectstart;

	@ExcelProperty("项目开始验收时间")
	private Date projectcheckstart;

	@ExcelProperty("项目验收完成时间")
	private Date projectcheckend;

	@ExcelProperty("项目结束时间")
	private Date projectfinish;

	@ExcelIgnore
	private int leftDays;

	@ExcelProperty("运营主体")
	@ApiModelProperty("运营主体")
	private String partyName;

	@ApiModelProperty("支付方式id")
	@ExcelIgnore
	private Integer payId;

	@ApiModelProperty("支付方式名称")
	@ExcelProperty(value = "支付方式")
	private String payName;

	/** 线下支付状态: 1:未支付 2:已支付 3:已处理 */
	@ExcelIgnore
	private int offlinePayState;

	@ExcelProperty(value = "状态", converter = ProjectStateConverter.class)
	private int state;

	@ExcelProperty(value = "发票类型", converter = InvoiceTypeConverter.class)
	private int invoicetype;

	@ExcelIgnore
	private int arbitrate;

	@ExcelProperty(value = "自动验收", converter = IntFlagConverter.class)
	private int autoCheck;

	@ExcelIgnore
	private int businessManagerId;

	@ExcelProperty("商务经理")
	private String businessManagerName;

	@ExcelIgnore
	private String hasPartner;

	@ApiModelProperty("支付给创客项目款,交易id")
	@ExcelIgnore
	private int tradeid;

	@ApiModelProperty("支付给创客项目款,交易状态 0:创建中 1:已受理 2:处理中 3:交易成功 4:交易失败 5:交易拒绝")
	@ExcelIgnore
	private int tradestate;

	@ApiModelProperty("支付给创客项目款,是否已经重新提交交易 0：否 1：是")
	@ExcelIgnore
	private int repay;

	@ExcelIgnore
	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录id")
	private int jiugeChargeTradeid;

	@ExcelIgnore
	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录状态")
	private int jiugeChargeTradestate;

	@ExcelIgnore
	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录,是否已经重新提交交易 0：否 1：是")
	private int jiugeChargeRepay;

	@ExcelIgnore
	@ApiModelProperty("合伙人提现id,此项目为提现项目")
	private String partnerWithdrawId;

	@ExcelIgnore
	@ApiModelProperty("验收图片证据url")
	private String attachmentUrl;

	@ExcelIgnore
	@ApiModelProperty("发票内容")
	private String invoiceContent;

	@ExcelIgnore
	@ApiModelProperty("补录时间")
	private String supplementTime;

	@ExcelIgnore
	@ApiModelProperty("是否是补录：0：不是，1.是")
	private int whetherSupplement;

	@ExcelIgnore
	@ApiModelProperty("补录人员")
	private String supplementPersonnel;
	@ExcelIgnore
	@ApiModelProperty("平台线下代付支付操作人")
	private Integer offlinePayAdminid;

	@ExcelIgnore
	@ApiModelProperty("长期项目的子项目提交验收时的备注,供企业参考")
	private String longTermProjectRemark;

	@ExcelIgnore
	@ApiModelProperty("备注")
	private String remarksField;

	@ExcelIgnore
	@ApiModelProperty("项目交付文件路径")
	private String deliveryPath;

	@ExcelIgnore
	@ApiModelProperty("已投标人数")
	private int bidCount;

	@ApiModelProperty("记录项目过程中的报错信息")
	@ExcelIgnore
	private int errorCode;
	@ApiModelProperty("记录项目过程中的报错信息")
	@ExcelIgnore
	private String errorMsg;

	@ExcelProperty("跟单员名称")
	private String merchandiserName;

}
